#!/bin/bash
# shebang指定解释器
# 清屏
clear

# 传进来的参数数目为0
if [[ $# -eq 0 ]]; then
	# 获取操作系统的名称
	os=$(uname -o)
	# 输出显示
	echo -e "OS Type:"$os
	# 获取操作系统的版本
	os_version=$(cat /etc/centos-release)
	# 输出显示
	echo -e "OS Version:"$os_version
	# 显示计算机的硬件架构
	architecture=$(uname -m)
	# 输出显示
	echo -e "Architecture:"$architecture
	# 显示内核发行版本号
	kernel=$(uname -r)
	# 输出显示
	echo -e "OS Kernel:"$kernel
	# 显示主机名称
	hostname=$(uname -n)
	# 输出显示
	echo -e "Hostname:"$hostname
	# 显示主机的所有地址
	internal_ip=$(hostname -I)
	# 输出显示
	echo -e "Internal IP:"$internal_ip
	# 获取外网ip
	external_ip=$(curl -s http://ipecho.net/plain)
	# 输出显示
	echo -e "External IP:"$external_ip
	# 获取dns，NF代表记录域的个数，$NF代表最后一个field
	dns=$(cat /etc/resolv.conf | grep -E "\<nameserver[ ]+"|awk '{print $NF}')
	# -c执行ping的次数 &>表示后台重定向,
	ping -c 2 baidu.com &>/dev/null && echo "Internet Connected" || echo "Internet Disconnnected"
	# 将目前的所有的登录用户加入到tmp/who中
	who>/tmp/who
	# 显示当前登入的所有用户
	echo -e "Logged In Users..." && cat /tmp/who
	# 删除，不显示提示信息，忽略不存在的文件
	rm -f /tmp/who

	# 系统内存使用情况
	system_memory_usages=$(awk '/MemTotal/{total=$2}/MemFree/{free=$2}END {print (total-free)/1024}' /proc/meminfo)
	# 输出显示
	echo -e "System Memory Usages:" $system_memory_usages
	# 应用内存使用情况,END表示在读完所有数据之后再执行
	app_memory_usages=$(awk '/MemTotal/{total=$2}/MemFree/{free=$2}/^Cache/{cached=$2}/Buffers/{buffers=$2}END 
	{print (total-free-cached-buffers)/1024}' /proc/meminfo)
	# 输出显示
	echo -e "Applications Memory Usages:" $app_memory_usages
	# cpu -n 1 -b刷新一次就退出并格式化输出
	cpu_load_average=$(top -n 1 -b | grep "load average:" | awk '{print $10 $11 $12}')
	# 输出CPU使用情况情况
	echo -e "CPU Load Average:" $cpu_load_average
	# 磁盘使用情况(disk free检查磁盘空间,-P防止参数换行)
	disk_usages=$(df -hP | grep -vE 'Filesystem|tmpfs' | awk '{print $1 " " $5}')
	$ 输出显示
	echo -e "Disk Usages:" $disk_usages
fi
